package com.ruoyi.jproom.service;

import com.ruoyi.jproom.entity.*;
import com.ruoyi.jproom.utils.BaseResult;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @author zeo
 * @explain 房源服务
 * @date 2020/7/27 11:05
 */
public interface HousingEntrustService {

    /**
     * 根据房源ID获取房源对象
     * @param housingId
     * @return
     */
    Housing findHousingById(String housingId);

    /**
     * 获取所有委托信息
     * @param sell
     * @return
     */
    List<Map<String,Object>> queryEntrustInfoList(Sell sell);


    /**
     * 有房出售委托
     *
     * @param meSellInfo
     * @return
     */
    BaseResult insertMeSellEntrust(MeSellInfo meSellInfo);

    /**
     * 客户端有房出租委托
     *
     * @param meHaveRentInfo
     * @return
     */
    BaseResult insertMeHaveRentEntrust(MeHaveRentInfo meHaveRentInfo);


    /**
     * 服务端获取用户委托的有房出售委托数据
     *
     * @return
     */
    List<MeSellInfo> findMeSellEntrustList();

    /**
     * 服务端根据委托id获取出售委托对象
     * * @return
     */
    MeSellInfo findMeSellEntrustById(String meSellId);

    /**
     * 服务端处理房源出售
     *
     * @param residentialFile 小区图片
     * @param residentialId   小区id
     * @param userId          用户唯一标识
     * @param isResidential   小区是否是新增
     * @param residential     小区对象
     * @return
     */
    BaseResult addHousingSell(MultipartFile[] residentialFile, String residentialId, String userId, int isResidential, Residential residential, Housing housing, MultipartFile[] housingFile, Sell sell) throws IOException;

    /**
     * 根据出售委托ID找房源ID
     * @param MeSellEntrustId
     * @return
     */
    String findHousingIdMeSellEntrustId(String MeSellEntrustId);


    /**
     * 服务端获取用户委托的有房出租委托数据
     *
     * @return
     */
    List<MeHaveRentInfo> findMeHaveRentEntrustList();

    /**
     * 服务端根据委托id获取出租委托对象
     * * @return
     */
    MeHaveRentInfo findMeHaveRentInfoEntrustById(String meHaveRentId);

    /**
     * 服务端处理房源出租
     *
     * @param residentialFile 小区图片
     * @param residentialId   小区id
     * @param userId          用户唯一标识
     * @param isResidential   小区是否是新增
     * @param residential     小区对象
     * @return
     */
    BaseResult addHousingRent(MultipartFile[] residentialFile, String residentialId, String userId, int isResidential, Residential residential, Housing housing, MultipartFile[] housingFile, Sell sell) throws IOException;

    /**
     * 根据出租委托ID找房源ID
     * @param MeHaveRentEntrustId
     * @return
     */
    String findHousingIdByMeHaveRentEntrustId(String MeHaveRentEntrustId);
}

